<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <title>已知宽高实现盒子水平垂直居中</title>
    <style type="text/css">
        .box {
            border: 1px solid #00ee00;
            height: 300px;
            /* 父元素相对定位 */
            position: relative;
        }

        .box1 {
            width: 200px;
            height: 200px;
            border: 1px solid red;
            /* 子元素绝对定位 */
            position: absolute;
            /* top值为50% */
            top: 50%;
            /* left值为50% */
            left: 50%;
            /* margin-top的值为负的高度的一半，margin-left的值为负的宽度的一半 */
            margin: -100px 0 0 -100px;
            /* CSS3的话更简单 */
            /* transform: translate(-50%, -50%); */
        }
    </style>
</head>

<body>
    <div class="box">
        <div class="box1"></div>
    </div>
</body>

</html>

<!-- 技术点的解释：

1、利用父元素设置相对定位,子元素设置绝对定位,那么子元素就是相对于父元素定位的特性。

2、子元素设置上和左偏移的值都为50%，是元素的左上角在父元素中心点的位置。

3、然后再用margin给上和左都给负的自身宽高的一半,就能达到垂直水平居中的效果。 -->